#include "estadobutton.h"

EstadoButton::EstadoButton(QWidget *parent) :
    QPushButton(parent)
{
    this->_iconos.clear();
    this->_estadoActual=0;

    impresora=QIcon(":/iconos/iconos/printer1.png");
}


void EstadoButton::setEstado(int i)
{
    _estadoActual=i;
    if(!_iconos.isEmpty()) setIcon(*_iconos.at(_estadoActual));
    if(!_textos.isEmpty()) this->setToolTip(_textos.at(_estadoActual));
    if(!_styles.isEmpty()) this->setStyleSheet(this->_styles.at(_estadoActual));
    emit nuevoEstado(_estadoActual);
}

void EstadoButton::enterEvent(QEvent *event)
{
    setIcon(impresora);

    QPushButton::enterEvent(event);
}

void EstadoButton::leaveEvent(QEvent *event)
{
    setIcon(*_iconos.at(_estadoActual));
    QPushButton::leaveEvent(event);
}

void EstadoButton::setIconos(QList<QIcon *> iconos)
{
    QIcon *icono;
    if(!this->_iconos.isEmpty())
    {
        foreach(icono,_iconos)
            delete icono;

        _iconos.clear();
    }
    foreach(icono,iconos)
        _iconos.append(icono);

    setEstado(0);
}

void EstadoButton::setTextos(QList<QString> textos)
{
    if(!this->_textos.isEmpty())
        _textos.clear();
    _textos=textos;

    setEstado(0);
}

void EstadoButton::setStyles(QList<QString> styles)
{
    if(!this->_styles.isEmpty())
        _styles.clear();
    _styles=styles;

    setEstado(0);
}

void EstadoButton::siguienteEstado()
{
    if(_estadoActual<_iconos.size()-1)
        setEstado(_estadoActual+1);
    else setEstado(0);
}
